'''
芯对讲代理商登录测试用例
'''
import time,pytest,os,conftest
from Method.GetDataPands import get_data,get_path
from KeyLib.Keylib_Web import KeyLib_ui
from Method import Allure_method
from Config import ConfigFile

# @pytest.mark.skip
@pytest.mark.usefixtures('Agent_login')
class Test_Agent(object):
    @pytest.mark.parametrize('case_data', get_data(get_path('Agent_data.xlsx')))
    def test_agent(self,case_data,Agent_login):
        #动态设置allure标题
        Allure_method.allure_tittle(case_data['feature'],case_data['module'],case_data['case_Name'])
        self.driver=Agent_login    #拿浏览器实例
        self.driver.refresh()    #先做网页刷新操作，以防前面的失败带动后面的用例出问题
        # Refresh.refresh(self.driver)    #先做网页刷新操作，以防前面的失败带动后面的用例出问题
        self.KeyLib_ui = KeyLib_ui(self.driver)
        case_Steps=case_data['case_Steps'].split('\n')   #切割数据，测试步骤
        print(f'---------------------------------------------------------------------------------------------------------------')
        print(f'-----------------开始执行用例：{case_data["case_ID"]}-----------------------')
        print(f'-----------------执行用例名称：{case_data["case_Name"]}-----------------------')
        for case in case_Steps:
            case_data=case.split(',',1)
            func = getattr(self.KeyLib_ui, case_data[0])   #类反射参数
            if len(case_data)==1:
                func()
            else:
                func(case_data[1:][0])                #实例化参数并传参，除了第一个其他都传
            time.sleep(0.5)
if __name__ == '__main__':
    # pytest.main(['-v', '-s','--clean-alluredir','--alluredir=./allure-report/result'])
    # os.system('allure generate ./allure-report/result -o ./allure-report/html --clean')
    # os.system('allure open ./allure-report/html')
    pytest.main(['-v', '-s'])


